Variable zusammenzählen anhand von kriterien.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
befehl
code
datenbank
einzelne zeile
ergebnis
gespeichert code
host
machen
parameter
position
server
set
spalte
statement
tabelle
unbedingt url
url
willkommen code
zeile
-
Wie kann man $ipi = $ipi+1 zusammenzählen. so dass es zb. 2 ergibt. zurzeit macht er 111 daraus, also reiht ers nur an ein ander.
<?php $iph = $_SERVER['REMOTE_ADDR']; $server = "server"; $datenbank = "db"; $username = "user"; $passwort = "pass"; $mysqli = new mysqli($server, $username, $passwort,$datenbank); $query = "UPDATE tabelle SET spalte='$ipn' WHERE spalte1='herkunft'"; $mysqli ->query($query); $ipi = 0; $resultado=mysqli_query($mysqli, "select * from tabelle"); while ($fila = mysqli_fetch_array($resultado)) { if ($iph == $fila['spalte']) { $ipi = $ipi+1; } else { $ipi = $ipi+0; } } if ($ipi == 0) { echo '<meta http-equiv="Refresh" content="12; URL=http://www.google.ch">'; } else { echo 'Willkommen'; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn
am Ende$ipi = $ipi + 1;
ergibt, könnte es vllt sein, dass es 111 mal addiert hat?111
Ansonsten:
1)
wird nirgendwo definiert.$ipn
2) Nutz unbedingt Prepared Statements, anstatt Parameter direkt in den SQL-String einzubauen!
3)
ist völlig unnötig$ipi = $ipi + 0;
4) Zählen kann die Datenbank selbst besser, als du es in PHP kannst. Sieh dir mal die COUNT-Funktion an. Deine Abfrage würde also eher so aussehen:SELECT COUNT(*) FROM tabelle WHERE spalte = ?
mit
durch?
ersetzt. Als Ergebnis käme dann eine einzelne Zeile heraus, welche die Summe enthält.$iph
5) Nutz eine konsistente Formatierung. So wie es jetzt ist, ist der Code relativ schwer lesbar.
6)
,$ipi
,$iph
,$ipn
… etwas aussagekräftigere Namen wären schon schön.$fila
-
habe den Code angepasst, so gibt er mir immer 0 raus, ob wohl 1zeile übereinstimmt mit $ipn
$resultado=mysqli_query($mysqli, "select count(*) AS counter from tabelle WHERE spalte = '$ipn'"); while ($fila = mysqli_fetch_array($resultado)) { $ipi = $fila['counter']; echo $ipi; }
-
Das ganze geht auch ganz einfach, aber ob das prepared genug ist :/
$mysqli = new mysqli("$host", "$user", "$pass", "$db"); $query = "Dein SQL Befehl hier "; $result = $mysqli->query($query); while($row = $result->fetch_array()) { $rows[] = $row; //Code der für jede Zeile in deiner Query-Ausgabe passieren soll. Alle Werte der Zeile werden in das array $row[] gespeichert. }
Beitrag zuletzt geändert: 8.10.2017 17:33:34 von horstexplorer -
habe den code nun so angepasst. jetzt gibt er mir nur noch array aus.
$query1= "Select count(*) AS counter from tabelle WHERE spalte = '$ipn'"; $result = $mysqli ->query($query1); while($row = $result->fetch_array()) { $row = $row; ech
-
Ich bin nicht ganz sicher was das ech in deinem Code macht, aber an die Infos im array kommst du immer mit array[position] ran also row[0] oder row[1] etc.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage