SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL/MySQLi

MySQL/MySQLi Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL/MySQLi diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.04.2010, 21:17:25
Joschi Joschi ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 3
PR6 Link für Umbau auf PHP MYSQLi Abfrage

Hallo,

aus lauter Verzweifelung biete ich demjenigen der als erster die Problemlösung postet einen dauerhaften Link von einer Pagerank 6 Seite an (Ausnahme sind nach deutschem Recht verbotenen Seiten.).

Meine bisherige Query sieht wie folgend aus:
PHP-Code:
$db = @new mysqli('localhost''root''''test');
if (
mysqli_connect_errno()) {
    die (
'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
/* change character set to utf8 */
if (!mysqli_set_charset($db"utf8")) {
   
printf("Error loading character set utf8: %s\n"mysqli_error($db));
}

$sql "SELECT 
                        * 
                    FROM
                        daten as data
                    LEFT JOIN produkt as prod ON prod.id=data.produkt_id 
                    LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter 
                    WHERE 
                        data.1_min <= 15 AND data.1_max >= 15 AND
                        data.2_min <=10 AND data.2_max >=10 AND 
                        data.3_min <=5 AND data.3_max >=5 AND 
                        data.4_min <=6 AND data.4_max >=6
                    GROUP BY 
                        data.produkt_id 
                    ORDER BY 
                        data.preis 
                    ASC"
;

$stmt $db->prepare($sql);
$stmt $db->query($sql);        

if (!
$stmt) {
    die (
'Konnte den Folgenden Query nicht senden: '.$sql."<br />\nFehlermeldung: ".$db->error);
}
if (!
$stmt->num_rows) {
        echo 
$sql;
    echo 
'<p class="info">Leider nichts gefunden.</p>';
} else {

    while (
$row $stmt->fetch_assoc()) {
            echo 
'<b>'.$row['anbieter'].'</b> '.$row['adresse']."<br>\n";
            echo 
' '.$row['beschreibung']."<br>\n";
            echo 
' '.$row['zustand']."<br>\n";
            echo 
' '.$row['preis']."<br><br>\n";
    }
   

Der MYSQL Query soll nun mit den per GET übergebenen Werten gefüttert werden . Sprich es müssen nun für die Werte im MYSQL String "Prepared Statements" (Für die Zahlen 15,10,5,6 ) geschaffen werden. Und entsprechend die IF Anweisungen angepasst. Wer als erstes eine funktionsfähige MYSQLi Version postet bekommt den oben beschriebenen Link.

Danke
Mit Zitat antworten
  #2  
Alt 10.04.2010, 08:58:06
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 53
Beiträge: 1.044
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Vielleicht fällt dir ja der Unterschied zu deinem bisherigen auf.
PHP-Code:
<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$city "Amersfoort";

/* create a prepared statement */
if ($stmt $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    
/* bind parameters for markers */
    
$stmt->bind_param("s"$city);

    
/* execute query */
    
$stmt->execute();

    
/* bind result variables */
    
$stmt->bind_result($district);

    
/* fetch value */
    
$stmt->fetch();

    
printf("%s is in district %s\n"$city$district);

    
/* close statement */
    
$stmt->close();
}

/* close connection */
$mysqli->close();
?>
Besonders auf bind_param(),execute(), fetch() und close() würde ich achten.
Mit Zitat antworten
  #3  
Alt 10.04.2010, 10:12:54
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Hi

wie heissen die
Zitat:
mit den per GET übergebenen Werten
denn?
und warum müssen
Zitat:
die IF Anweisungen angepasst
werden?

ansonsten mal wieder ins dunkle geschossen...
mysqli_way?
PHP-Code:
$sql "SELECT 
                        * 
                    FROM
                        daten as data
                    LEFT JOIN produkt as prod ON prod.id=data.produkt_id 
                    LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter 
                    WHERE 
                        data.1_min <= ? AND data.1_max >= ? AND
                        data.2_min <=? AND data.2_max >=? AND 
                        data.3_min <=? AND data.3_max >=? AND 
                        data.4_min <=? AND data.4_max >=?
                    GROUP BY 
                        data.produkt_id 
                    ORDER BY 
                        data.preis 
                    ASC"
;

$stmt->bind_param("iiiiiiii",$_GET['w1'],$_GET['w1'],$_GET['w2'],$_GET['w2'],$_GET['w3'],$_GET['w3'],$_GET['w4'],$_GET['w4']); 
PHPway
PHP-Code:
//ausgedachte GET WERTE w1,w2,w3,w4
If($_GET['w1']){
     
$where_data[] = "data.1_min <="$_GET['w1'];
     
$where_data[] = "data.1_max >="$_GET['w1'];
}
If(
$_GET['w2']){
     
$where_data[] = "data.2_min <="$_GET['w2'];
     
$where_data[] = "data.2_max >="$_GET['w2'];
}
If(
$_GET['w3']){
     
$where_data[] = "data.3_min <="$_GET['w3'];
     
$where_data[] = "data.3_max >="$_GET['w3'];
}
If(
$_GET['w4']){
     
$where_data[] = "data.4_min <="$_GET['w4'];
     
$where_data[] = "data.4_max >="$_GET['w4'];
}
if(
is_array($where_data)){
     
$where_sql " WHERE ".implode(' and ',$where_data);
}

$sql "SELECT 
                        * 
                    FROM
                        daten as data
                    LEFT JOIN produkt as prod ON prod.id=data.produkt_id 
                    LEFT JOIN anbieter as anb ON anb.id=prod.id_anbieter 
                    "
.$where_sql."
                    GROUP BY 
                        data.produkt_id 
                    ORDER BY 
                        data.preis 
                    ASC"

Auf Überprüfung deiner GET werte bin ich bewusst nicht eingegangen.
Beachte bitte auch Urvater's Anmerkung.


mfg

Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #4  
Alt 10.04.2010, 10:38:18
Joschi Joschi ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 3
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Hi

ich habe jetzt testweise mal den MYSQLi way komplett eingebaut.

Zitat:
Fatal error: Call to a member function bind_param() on a non-object in test-mysqli.php on line 34
Also der neue Ausdruck.

Also habe ich alles auf Anfang. Ich habe nur ein ? eingesetzt und das GET durch einen festen Wert ersetzt.

PHP-Code:
$testwert=45;
$stmt->bind_param("i",$testwert);
$stmt $db->prepare($sql);
$stmt $db->query($sql); 
Aber auch hier:
Zitat:
Fatal error: Call to a member function bind_param() on a non-object in test-mysqli.php on line 34
Komisch.
Mit Zitat antworten
  #5  
Alt 10.04.2010, 10:41:42
Joschi Joschi ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 3
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Zitat:
Hi

wie heissen die
Zitat:
mit den per GET übergebenen Werten
denn?
Du hast in deinem Codebeispiel bereits die richtigen GET Variablen genommen.

Zitat:
und warum müssen
Zitat:
die IF Anweisungen angepasst
werden?
Ich hatte das in den Dokus so verstanden, leider sind hier ja nur INSERT und keine SELECT Anfragen definiert.
Mit Zitat antworten
  #6  
Alt 10.04.2010, 10:48:42
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Hi

ich bin davon ausgegangen das du alle Beiträge liest ;)
Wie in Urvater's Beitrag schon dargelegt kommt bind_param
nach prepare.
Schau dir das bitte genauer an und versuche meinen Ansatz entsprechend
einzuarbeiten.

mfg

Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 12.04.2010, 01:20:10
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: PR6 Link für Umbau auf PHP MYSQLi Abfrage

Hi

hat nun jemand den PR6 gewonnen? ;)
Könnt den gut für mein Facebookapp gebrauchen *hust

mfg

Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php link [OTw]First-Inv@ PHP Grundlagen 8 23.02.2003 23:05:34
Abfrage in MySQL und PHP Ich werd noch Bekloppt Fichte PHP Grundlagen 1 18.02.2003 00:33:30
Timestamp von PHP und MySQL BlindCrazyBoy PHP für Fortgeschrittene und Experten 8 16.02.2003 01:37:08
Link und php Deeem2031 PHP für Fortgeschrittene und Experten 9 06.02.2003 21:41:22
Einführung in PHP und Datenbanken Lómion PHP für Fortgeschrittene und Experten 7 07.02.2002 14:47:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:21:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.


© 2001-2021 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt